package lib.bone.system.service;

import lib.bone.common.core.domain.ResponseDTO;
import lib.bone.common.service.BaseService;
import lib.bone.system.domain.dto.dept.DeptAddDTO;
import lib.bone.system.domain.entity.SysDept;
import lib.bone.system.domain.vo.DeptVO;
import lib.bone.system.domain.vo.SysDeptBasic;

import javax.swing.text.html.Option;
import java.util.List;
import java.util.Optional;

/**
 * @Author : kindear
 */
public interface SysDeptService extends BaseService<SysDept,Long> {
    /** 新增一个部门 **/
    @Deprecated
    ResponseDTO<SysDept> saveDept(DeptAddDTO deptAddDTO);

    /** 构建部门选择树 **/
    List<DeptVO> buildDeptTree(List<SysDept> depts);
    /** 根据父部门查询 **/
    List<SysDept> findByParent(SysDept parent);
    /**
     * 根据列表查询
     */
    List<SysDept> findByIds(List<Long> ids);
    /**
     * 根据部门名称查询
     */
    Optional<SysDept> findByDeptName(String deptName);

    /**
     * 获取全部部门基础信息
     * @return
     */
    List<SysDeptBasic> getAllDeptBasic();
}
